/**
 * 
 */
package pruebas.tiendaOl.dominio.calificadores;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import javax.enterprise.util.AnnotationLiteral;
import javax.inject.Qualifier;

/**Contiene definiciones de calificadores para eventos y una instancia de cada uno. 
 * @author Gustavo
 */
public interface CalEvento {
	@Qualifier
	@Target({ TYPE, METHOD, PARAMETER, FIELD })
	@Retention(RUNTIME)
	@Documented
	public @interface Agregado {}
	public static final Annotation AGREGADO = new AnnotationLiteral<Agregado>(){};

	@Qualifier
	@Target({ TYPE, METHOD, PARAMETER, FIELD })
	@Retention(RUNTIME)
	@Documented
	public @interface Quitado {}
	public static final Annotation QUITADO = new AnnotationLiteral<Quitado>(){};

	@Qualifier
	@Target({ TYPE, METHOD, PARAMETER, FIELD })
	@Retention(RUNTIME)
	@Documented
	public @interface Modificado {}
	public static final Annotation MODIFICADO = new AnnotationLiteral<Modificado>(){};
}
